#ifndef HPLC_ZKYS_PUMP_SENDPACKET_H
#define HPLC_ZKYS_PUMP_SENDPACKET_H

#include "common/hplczkyssendcommonpacket.h"

namespace hplc
{
namespace zkys
{

class HplcZkysPumpProtocolData;
class HplcZkysPumpSendPacket : public HplcZkysSendCommonPacket
{
public:
    HplcZkysPumpSendPacket(HplcZkysPumpProtocolData &data, QObject *parent = nullptr);
    virtual ~HplcZkysPumpSendPacket() override;

    void setFlow(float flow);
    void getFlow();
    void setFlowPercent(quint8 percent);
    void getFlowPercent();
    void setPressMin(float press);
    void getPressMin();
    void setPressMax(float press);
    void getPressMax();
    void setPressWarning(float press);
    void getPressWarning();
    void setStartStop(quint8 flag);
    void getStartStop();
    void setPauseRestore(quint8 flag);
    void getPauseRestore();
    void setPurge(quint8 flag);
    void getPurge();
    void setPurgeFlow(float flow);
    void getPurgeFlow();
    void setPurgeTime(quint8 time);
    void getPurgeTime();
    void setPressZero();
    void getPressZeroVoltage();
    void setPressUploadFreq(quint8 factor);
    void getPressUploadFreq();
    void setPressCompen(quint8 flag);
    void getPressCompen();
    void setMode(quint8 mode);
    void getMode();
    void setPress(float press);
    void getPress();
    void setRunMode(quint8 mode);
    void getRunMode();

    // 恒压泵专用
    void CP_SetFlowMax(float flow);
    void CP_GetFlowMax();
    void CP_SetFlowMin(float flow);
    void CP_GetFlowMin();
    void CP_SetPressThreshold(float press);
    void CP_GetPressThreshold();
    void CP_SetPressSet(float press);
    void CP_GetPressSet();
    void CP_SetPID(float p, float i, float d);
    void CP_GetPID();
    void CP_SetPressPIDOut(float press, float pidOut);
    void CP_GetPressPIDOut();
    void CP_SetPressPIDOutUploadFreq(uint8_t freq);
    void CP_GetPressPIDOutUploadFreq();
};

} // zkys
} // hplc

#endif // HPLC_ZKYS_PUMP_SENDPACKET_H
